package br.unicamp.ic.inf312.arena.modelo.vendas;

/**
 *   Representa a somatoria dos valores dos bilhetes de um determinado Evento, sendo
 * esta (OrdemPagto) identificada a partir do numero do cartao de credito da conta
 * contabil do evento. Eh a partir desse atributo que sera feito o credito.
 * 
 * @author inf312
 *
 */
public class OrdemPagto {
	private long numCartaoBeneficiado;
	private double valorAPagar = 0.0D;

	/**
	 * 
	 * @param numCartaoBeneficiado
	 * @param valorAPagar
	 */
	public OrdemPagto(long numCartaoBeneficiado) {
		super();
		this.numCartaoBeneficiado = numCartaoBeneficiado;
	}

	/**
     * Compara this com outra instancia da classe (param)
     * 
     * @param param
     * @return {true - caso possuam mesmo atributo numCartaoBeneficiado, false - caso contrario}
     */
	public boolean equals(Object param) {
		//objs distintos
		if (!(param instanceof OrdemPagto)) { return false; }

		OrdemPagto convertedParam = (OrdemPagto) param;
		//mesmo handle
		if ( param == convertedParam ) { return true; }

		//compara atributo numCartaoBeneficiado
		if (this.getNumCartaoBeneficiado() != convertedParam.getNumCartaoBeneficiado()) {
			return false;
		}
		return true;
	}

	public long getNumCartaoBeneficiado() {
		return numCartaoBeneficiado;
	}

	public void setNumCartaoBeneficiado(long numCartaoBeneficiado) {
		this.numCartaoBeneficiado = numCartaoBeneficiado;
	}

	public double getValorAPagar() {
		return valorAPagar;
	}

	public void setValorAPagar(double valorAPagar) {
		this.valorAPagar = valorAPagar;
	}

	public void somarValorBilhetesDoEvento(double valorBilhete) {
		this.valorAPagar += valorBilhete;
	}
}